Computation of decision feedback equalizer coefficients with constrained feedback tap energy

ABSTRACT

Directly computing Feed Forward Equalizer (FFE) coefficients and Feed Back Equalizer (FBE) coefficients of a Decision Feedback Equalizer (DFE) from a channel estimate. The FBE coefficients have an energy constraint. A recursive least squares problem is formulated based upon the DFE configuration, the channel estimate, and the FBE energy constraint. The recursive least squares problem is solved to yield the FFE coefficients. The FFE coefficients are convolved with a convolution matrix that is based upon the channel estimate to yield the FBE coefficients. A solution to the recursive least squares problem is interpreted as a Kalman gain vector. A Kalman gain vector solution to the recursive least squares problem may be determined using a Fast Transversal Filter (FTF) algorithm.

CROSS REFERENCES TO RELATED APPLICATIONS

The present application is a continuation-in-part of U.S. Regular Utility application Ser. No. 10/956,172, filed Oct. 1, 2004, which is a continuation-in-part of U.S. Regular Utility application Ser. No. 10/044,013, filed Oct. 26, 2001, which claims priority to U.S. Provisional Application Ser. No. 60/322,994, filed Sep. 18, 2001. The present application is also a continuation in part of U.S. Regular Utility application Ser. No. 10/154,947, filed May 24, 2002, which claims priority to U.S. Provisional Application Ser. No. 60/339,253, filed Oct. 26, 2001 and which is a continuation-in-part of U.S. Regular Utility application Ser. No. 10/044,013, filed Oct. 26, 2001, which claims priority to U.S. Provisional Application Ser. No. 60/322,994, filed Sep. 18, 2001, All of these applications are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to digital communications; and more particularly to decision feedback equalizers.

2. Description of Related Art

The structure and operation of communication systems is generally known. Many communication systems carry data, e.g., voice, audio, video, file, or other digital data that is sent from a transmitter to a receiver. On the transmitter side, data is first formed into packets. This data may be raw data or encoded data that represents the raw data. Each of these packets also typically includes a header, a known training sequence, and a tail. These packets are then modulated into symbols and the symbols are transmitted by the transmitter and intended for receipt by the receiver. The receiver then receives the symbols and attempts to extract the data that is carried by the symbols.

A “channel” carries the symbols from the transmitter to the receiver. The channel is serviced by a wired, wireless, optical, or another media, depending upon the communication system type. In many communication systems, such as terrestrial based wireless communication systems, satellite based communication systems, cable based communication systems, etc., and the channel distorts the transmitted symbols, from the perspective of the receiver, causing interference between a subject symbol and a plurality of symbols surrounding the subject symbol. This type of distortion is referred to as “inter-symbol-interference” and is, generally speaking, the time-dispersed receipt of multiple copies the symbols caused by multipath. The channel also introduces noise into the symbols prior to their receipt. Each of these concepts is well known.

Equalizers are now generally employed in an attempt to remove channel effects from a received symbol stream. Equalizers are essential building blocks of modern receivers, especially in broadband applications where inter-symbol-interference is a critical problem. Equalizers can be divided into two categories, Linear Equalizers (LEs) and Decision Feedback Equalizers (DFEs). A LE is typically a finite impulse response (FIR) filter, which in general can be viewed as some sort of channel inverse. Linear equalizers suffer from noise enhancement, which can become damaging for low SNR. A DFE does not suffer from noise enhancement as it does not try to invert the channel. A DFE constructs and then cancels a replica of the ISI, which is based on symbol decisions and a channel estimate. The DFE also uses a feed forward equalizer (FFE) to equalize channel pre-echoes. The feedback nature of a DFE makes it vulnerable to error propagation in the feedback equalizer (FBE). The probability of error propagation increases with the energy of the feedback taps. A DFE structure does not suffer from noise enhancement by preventing the FFE from inverting the channel. This is done by setting the decision delay equal to L−1, where L is the number of taps of the FFE.

In a typical equalizer, the channel between the transmitter and the receiver is first estimated based upon the training sequence contained in one or more preambles. Then optimal equalizer coefficients (also referred to as taps and/or tap coefficients for the equalizer) are estimated based upon the channel estimate. The optimal equalizer coefficients are then used by the equalizer in extracting the data from the packet. The optimal equalizer coefficients may also be computed after extraction of the data from the equalized data stream based upon blind channel estimates. Equalizer coefficient generation should be repeated as often as possible, especially in fast varying channel cases, to generate new equalizer coefficients. The received data stream is usually buffered during the period that is required for channel estimation and equalizer coefficient computations. Thus, the preamble (and also actual data) contained in a packet may be used to generate the channel estimate and optimal equalizer coefficients that are employed by the equalizer to extract the data from the packet.

As symbol rates increase and modulation schemes become more complex, equalizers have increasingly greater importance. A critical factor in increasing the effectiveness of these equalizers is the complexity of optimal equalizer coefficient computation. A reduction in this complexity: (1) reduces the memory size required to buffer the received symbol stream sequence during the period required for coefficient computations; (2) allows more frequent uploading of new coefficients thus enabling the equalizer to track fast channel variations; and (3) simplifies the hardware and, resultantly, the die area required for coefficient computation.

FIG. 1A is a block diagram illustrating a discrete time symbol-spaced DFE based channel equalization model 100. The channel equalization model 100 includes a channel 102, a Feed Forward Equalizer (FFE) 104, a Decision block 106, and a Feed Back Equalizer (FBE) 108. An input sequence x(n) is complex, independent, and identically distributed with unit power. Additive noise v(n) is white Gaussian with power spectral density σ_(v) ². Furthermore, the decisions {haeck over (x)}(n−δ) are assumed to be correct, and hence equal to x(n−δ). This assumption makes the design of the FBE 108 and FFE 104 easier, but at the expense of introducing error propagation due to possibly wrong decisions. The FFE 104 function G(z) has length L. The channel (impulse) response vector of the channel h is given in Equation (1) as: $\begin{matrix} {h\overset{\Delta}{=}\begin{bmatrix} {h(0)} & {h(1)} & \ldots & {h\left( {N - 1} \right)} \end{bmatrix}} & {{Equation}\quad(1)} \end{matrix}$ We assume the following modeling condition: The number of coefficients (taps) M of the FBE 108 function B(z) is assumed to be greater than or equal to the channel memory, i.e., M≧N−1. These modeling assumptions are feasible in practice.

In estimating FFE 104 and FBE 108 equalizer coefficients, the goal is to minimize the mean square error quantity of Equation (2). ξ=E|x(n−δ)−{circumflex over (x)}(n−δ)|²,  Equation (2) Where {circumflex over (x)}(n−δ) is the delayed input signal estimate prior to the Decision block 106. By collecting the coefficients of both G(z) and B(z) into vectors, we can express the received signal {circumflex over (x)}(n−δ) in Equation (3) as: x _(n) =y _(n) g−{haeck over (x)} _(n) b  Equation (3)

A channel output model defining y_(n) may be expressed by: y _(n) =x _(n) H+v _(n)  Equation (4) where H is the (N+L−1)×L convolution matrix corresponding to the channel estimate and expressed as: $\begin{matrix} {H = \begin{bmatrix} {h(0)} & 0 & \ldots & 0 \\ {h(1)} & {h(0)} & \ldots & 0 \\ \vdots & \vdots & ⋰ & \vdots \\ {h\left( {N - 1} \right)} & {h\left( {N - 2} \right)} & ⋰ & {h(0)} \\ 0 & {h\left( {N - 1} \right)} & ⋰ & {h(1)} \\ \vdots & \vdots & ⋰ & \vdots \\ 0 & 0 & \ldots & {h\left( {N - 1} \right)} \end{bmatrix}} & {{Equation}\quad(5)} \end{matrix}$

In this model, x_(n) is the 1×(N+L−1) input vector: $\begin{matrix} {x_{n}\overset{\Delta}{=}\begin{bmatrix} {x(n)} & {x\left( {n - 1} \right)} & \ldots & {x\left( {n - N - L + 2} \right)} \end{bmatrix}} & {{Equation}\quad(6)} \end{matrix}$ y_(n) is the 1×L input regression vector to the FFE 104, $\begin{matrix} {y_{n}\overset{\Delta}{=}\begin{bmatrix} {y(n)} & {y\left( {n - 1} \right)} & \ldots & {x - {y\left( {n - L + 1} \right)}} \end{bmatrix}} & {{Equation}\quad(7)} \end{matrix}$ {haeck over (x)}_(n) is the 1×M input regression vector to the (strictly causal) FBE 108, $\begin{matrix} {{\overset{˘}{x}}_{n}\overset{\Delta}{=}\begin{bmatrix} {x\left( {n - \delta - 1} \right)} & {x\left( {n - \delta - 2} \right)} & \ldots & {x\left( {n - \delta - M} \right)} \end{bmatrix}} & {{Equation}\quad(8)} \end{matrix}$ and v_(n) is the 1×L vector noise process.

The current efficient methods for computing the optimal filter coefficients of a decision feedback equalizer, which optimizes (1), are based on the well-known Cholesky decomposition method (from a finite-dimension problem formulation). Two published papers: (1) N. Al-Dhahir and J. M. Cioffi, “MMSE Decision-Feedback Equalizers: Finite-Length Results,” IEEE Trans. on Information Theory, vol. 41, no. 4, pp. 961-973, July 1995; and (2) N. Al-Dhahir and J. M. Cioffi, “Fast Computation of Channel-Estimate Based Equalizers in Packet Data Transmission,” IEEE Trans. on Signal Processing, vol. 43, no. 11, pp. 2462-2473, November 1995 provide one procedure for computing optimal DFE settings. These equations are referred to hereinafter as “Al-Dhahir's equations.”

Generally speaking, Al-Dhahir's equations, as well as other existent techniques rely on the use of the generalized Schur algorithm for fast Cholesky decomposition of the matrices involved in both the FBE and FFE optimal coefficient setting computations. However, the overall procedures for calculation of the DFE (FBE and FFE) coefficients have the following problems:

-   -   1. These procedures require the use of nonstructured recursive         equations. These equations are difficult to implement from the         perspective of integrated circuit design. In particular, the         recursive equations used in Al-Dhahir's DFE tap (coefficient)         computer often requires the use of a DSP processor. As is         generally known, the use of a DSP processor in a real-time         communication system application is severely constricts system         throughput.     -   2. These procedures, in particular Al-Dhahir's equations require         a complex tap computer. In other words, they require the use of         a relatively large number of complex multiplies.     -   3. These prior art DFE coefficient computation techniques can be         used only for equalizers that use a fixed equalizer delay (δ),         which is set to its maximum value L−1, where L is the length of         the FFE 104. The prior art techniques cannot use a different         delay a of the equalizer.

FIG. 1B is a block diagram illustrating a discrete time symbol-spaced LE channel equalization model 150. The LE channel equalization model 150 includes a channel 152 having length N, a LE 154 having length L, and a decision block 156. An input sequence x(n) is complex, independent, and identically distributed with unit power. Additive noise v(n) is white Gaussian with power spectral density σ_(v) ².

A minimization of the Mean Square Error (MSE) across the decision block 156 may be written as: $\begin{matrix} {\min\limits_{g}{E{{{x\left( {n - \delta} \right)} - {y_{n} \cdot g}}}^{2}}} & {{Equation}\quad(9)} \end{matrix}$

Denoting R_(y) as the variance of the input regression vector y, and cross variance R_(yx(n−δ)), the smoothing problem for this minimization is given by Equation (10) as: g _(opt) =R _(y) ⁻¹ R _(yx(n−δ)).  Equation (10)

A convolution matrix H as defined in Equation (5) may also be assumed for the LE channel equalization model 150. With a vector d defined as a vector of all zeros except for the δ^(th) element, which is unity, a solution for the coefficients of the LE 154 solution may be written as: $\begin{matrix} {g_{opt} = {\left\lbrack {{\sigma_{v}^{2}I} + {H^{*}H}} \right\rbrack^{- 1}h^{*}}} & {{Equation}\quad(11)} \end{matrix}$

Prior art solutions of Equation (11) require matrix inversion. Such matrix inversion requires the greater of L³ or N³ multiplications and cannot be accomplished timely enough to allow a prior art transceiver to compute LE coefficients based upon a channel estimate. Accordingly, prior art techniques for training LEs included: (1) blindly assigning LE coefficients; (2) adapting the LE coefficients to a received preamble, training sequence, or other data; or (3) a combination of both of these techniques. Typically, convergence in training the LE using an iterative training approach, e.g., Least Squares, required a significant number of iterations. Oftentimes, such convergence in training could not be accomplished to meet the requirements of rapidly changing channels.

In choosing to use either a LE or a DFE, a tradeoff between noise enhancement and error propagation must be made. When error propagation is of more concern than noise enhancement, a LE will typically be chosen. When noise enhancement is of more concern than error propagation, a DFE will typically be chosen. However, considerations of noise enhancement and error propagation often change over time in many communication systems. Thus, there is a need in the art for an equalizer that provides the benefits of both the DFE and the LE and that may be operated in differing system conditions. Further, there is a need for a reduced computation technique for determining the coefficients of the DFE or LE.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to apparatus and methods of operation that are further described in the following Brief Description of the Drawings, the Detailed Description of the Invention, and the claims. Other features and advantages of the present invention will become apparent from the following detailed description of the invention made with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects and advantages of the present invention will be more fully understood when considered with respect to the following detailed description, appended claims and accompanying drawings wherein:

FIG. 1A is a block diagram illustrating a discrete time symbol-spaced Decision Feedback Equalizer (DFE) channel equalization model;

FIG. 1B is a block diagram illustrating a discrete time symbol-spaced Linear Equalizer (LE) channel equalization model;

FIG. 2 is a logic diagram generally illustrating operation according to the present invention in determining DFE coefficients and applying such coefficients to a DFE;

FIG. 3 is a logic diagram illustrating operations according to the present invention employed to determine Feed Forward Equalizer (FFE) coefficients for the DFE;

FIG. 4 is a logic diagram illustrating operations according to the present invention employed to determine Feed Back Equalizer (FBE) coefficients for the DFE;

FIG. 5 is a block diagram illustrating a discrete time fractionally-spaced DFE that operates according to the present invention;

FIG. 6 is a block diagram illustrating a multi-channel equivalent of the discrete time fractionally-spaced DFE of FIG. 5;

FIG. 7 is a block diagram illustrating a transceiver having a DFE constructed according to the present invention;

FIG. 8 is a logic diagram illustrating operations according to an embodiment of the present invention employed to determine DFE coefficients with constrained FBE energy;

FIG. 9 is a logic diagram illustrating operations according to another embodiment of the present invention to determine FFE coefficients of a DFE having constrained FBE energy; and

FIG. 10 is a logic diagram illustrating a particular technique according to the present invention and of FIG. 9 for using a fast transversal computation to determine the FFE coefficients.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 2 is a logic diagram generally illustrating operation according to the present invention in determining Decision Feedback Equalizer (DFE) coefficients and in applying such coefficients to a DFE. The operations of the present invention are performed by a processor, such as a Digital Signal Processor (DSP), or other circuitry present within a receiver that determines DFE coefficients to be applied to a DFE, also resident in the receiver. The DFE operates upon samples of a received signal in an attempt to remove channel effects from the samples so that digital data may be extracted from the samples. The structure and operation of DFEs, one of which was illustrated in FIG. 1A, are generally known and will not be further described herein except as they relate to the present invention.

The operations of the present invention will be first performed by a processor, tap computer, DSP, or other receiver device, to determine initial DFE coefficients to be used in subsequent operations by the receiver. Thus, during startup or reset, a channel corresponding to the receiver is estimated (step 202). According to one embodiment of the present invention, the channel is estimated based upon a known preamble sequence. However, in other embodiments, the channel could also be estimated based upon unknown received data. In either case, channel estimation operations are generally well known and are not described further herein except as it relates to the present invention.

With the channel estimated, Feed Forward Equalizer (FFE) coefficients are determined based upon the channel estimate (step 206). Then, Feed Back Equalizer (FBE) coefficients are determined based upon the FFE coefficients and the channel estimate (step 208). The manner in which the FFE and FBE coefficients are generated is step 206 and step 208 will be described in detail herein with reference to FIGS. 3-7.

With the FFE and FBE coefficients determined, they are applied to the DFE (step 208) and are used in equalizing samples of a received signal to remove channel effects. These DFE coefficients are continually updated (step 210) using a known technique. Periodically, upon the receipt of a next packet for example, upon an indication that redetermination is required, or upon another triggering event, the DFE coefficients are redetermined (step 212). In this event, another channel estimate may be obtained (step 214). Then, the DFE coefficients are again determined according to the present invention and applied to the DFE. The operations of FIG. 2 continue until the receiver is turned off, placed in a sleep mode, or otherwise inactivated.

FIG. 3 is a logic diagram illustrating operations according to the present invention employed to determine Feed Forward Equalizer (FFE) coefficients for the DFE. In a first operation of FIG. 3, a DFE delay is selected (step 302). In one embodiment, this delay is selected as the channel length. In such case, the DFE delay corresponds to the length of the FFE.

Next, the DFE solution is formulated into a least squares solution (step 304). By collecting the FFE coefficients g and the FBE coefficients b into a single vector w, the minimization of the Mean Square Error may be written as: $\begin{matrix} {\min\limits_{w}{E{{{x\left( {n - \delta} \right)} - {\underset{\underset{u}{︸}}{\left\lbrack {y_{n} - {\overset{˘}{x}}_{n}} \right\rbrack}\underset{\underset{w}{︸}}{\begin{bmatrix} g \\ b \end{bmatrix}}}}}^{2}}} & {{Equation}\quad(12)} \end{matrix}$

Now, denoting R_(u) the variance of the augmented input regression vector u, and cross variance R_(ux(n−δ)), the well-known solution to this smoothing problem is given by Equation (13) as: $\begin{matrix} {w_{opt} = {R_{u}^{- 1}{R_{{ux}{({n - \delta})}}.{Where}}}} & {{Equation}\quad(13)} \\ {{R_{u}\overset{\Delta}{=}{{{E\begin{bmatrix} y_{n}^{*} \\ {- {\overset{˘}{x}}_{n}^{*}} \end{bmatrix}}\left\lbrack {y_{n} - {\overset{˘}{x}}_{n}} \right\rbrack} = \begin{bmatrix} R_{y} & {- R_{y\overset{˘}{x}}} \\ {- R_{\overset{˘}{x}y}} & R_{\overset{˘}{x}} \end{bmatrix}}}{And}} & {{Equation}\quad(14)} \\ {R_{{ux}{({n - \delta})}} = {\begin{bmatrix} {{Ey}_{n}^{*}{x\left( {n - \delta} \right)}} \\ {E{\overset{˘}{x}}_{n}^{*}{x\left( {n - \delta} \right)}} \end{bmatrix} = \begin{bmatrix} R_{{yx}{({n - \delta})}} \\ R_{\overset{˘}{x}{x{({n - \delta})}}} \end{bmatrix}}} & {{Equation}\quad(15)} \end{matrix}$

Using the channel output model of Equation (4), and the fact that x(n) is individually identically distributed (i.i.d.), the following closed form expressions for {R_(y), R_(y{haeck over (x)}), R_({haeck over (x)}, R) _(yx(n−δ), R) _({haeck over (x)}x(n−δ))} are determined: $\begin{matrix} {R_{y} = {{{Ey}_{n}^{*}y_{n}} = {{\sigma_{v}^{2}I} + {H^{*}H}}}} & {{Equation}\quad(16)} \\ {{R_{y\overset{˘}{x}} = {{H^{*}\left( {{Ex}_{n}^{*}{\overset{˘}{x}}_{n}} \right)} = {{H^{*} \cdot \begin{bmatrix} 0_{{({\delta + 1})}*M} \\ I_{M} \\ 0_{{({N + L - M - \delta - 2})} \times M} \end{bmatrix}}\overset{\Delta}{=}{\overset{\_}{H}}^{*}}}},} & {{Equation}\quad(17)} \end{matrix}$

Where {overscore (H)} is a submatrix of H as set forth in Equation (5), $\begin{matrix} {H = \begin{bmatrix} H_{1} \\ \overset{\_}{H} \\ H_{2} \end{bmatrix}} & {{Equation}\quad(21)} \end{matrix}$ Where H₁ is defined as the (δ+1)×L submatrix of H, consisting of the first (δ+1) rows of H. Note that for the case of colored noise, the matrix σ_(v) ²I should be replaced by the autocorrelation matrix of the noise R_(v). Extending the derivation to the colored noise case is straightforward.

Now, with the quantities defined above, Equation (13) becomes: $\begin{matrix} {w_{opt} = {\begin{bmatrix} {{\sigma_{v}^{2}I} + {H^{*}H}} & {- {\overset{\_}{H}}^{*}} \\ {- \overset{\_}{H}} & I \end{bmatrix}^{- 1}\begin{bmatrix} h^{*} \\ 0 \end{bmatrix}}} & {{Equation}\quad(22)} \end{matrix}$

Using the well known inverse formula of block matrices, w_(opt) may be rewritten as: $\begin{matrix} {{{w_{opt} = {\left( {\begin{bmatrix} 0 & 0 \\ 0 & I \end{bmatrix} + {\begin{bmatrix} I \\ \overset{\_}{H} \end{bmatrix}{\left( {{\sigma_{v}^{2}I} + {H^{*}H} - {{\overset{\_}{H}}^{*}\overset{\_}{H}}} \right)^{- 1}\left\lbrack {I\quad\overset{\_}{H}} \right\rbrack}}} \right)\begin{bmatrix} h^{*} \\ 0 \end{bmatrix}}}{{And}\quad{as}\text{:}}}\quad} & {{Equation}\quad(23)} \\ {= {\begin{bmatrix} I \\ \overset{\_}{H} \end{bmatrix}\left( {{\sigma_{v}^{2}I} + {H_{1}^{*}H_{1}} + {H_{2}^{*}H_{2}}} \right)^{- 1}h^{*}}} & {{Equation}\quad(24)} \end{matrix}$ Which may be written as: $\begin{matrix} {\begin{bmatrix} g_{opt} \\ b_{opt} \end{bmatrix} = {\left\lbrack \frac{I}{H} \right\rbrack\left( {{\sigma_{v}^{2}I} + {\left\lbrack {H_{1}^{*}\quad H_{2}^{*}} \right\rbrack\begin{bmatrix} H_{1} \\ H_{2} \end{bmatrix}}} \right)^{- 1}h^{*}}} & {{Equation}\quad(25)} \end{matrix}$

Although each of the two matrices H₁ and H₂ has a shift structure, the augmented matrix $\begin{bmatrix} H_{1} \\ H_{2} \end{bmatrix}\quad\quad$ does not have a shift structure.

In selecting the length of the FBE (DFE delay) to be M≧N−1, the quantities h_(δ), H₁ and H₂ are such that: $\begin{matrix} {{{\left\lbrack \frac{H_{1}}{H_{2}} \right\rbrack = \begin{bmatrix} H_{\delta} & 0 \\ 0 & \overset{\sim}{H} \end{bmatrix}}{And}}\quad} & {{Equation}\quad(29)} \\ {{{h = \left\lbrack {h_{\delta}\quad 0} \right\rbrack}{{This}\quad{implies}\quad{that}\text{:}}}\quad} & {{Equation}\quad(27)} \\ {{{\sigma_{v}^{2}I} + {H_{1}^{*}H_{1}} + {H_{2}^{*}H_{2}}} = \begin{bmatrix} {{\sigma_{v}^{2}I} + {H_{\delta}^{*}H_{\delta}}} & 0 \\ 0 & {{\sigma_{v}^{2}I} + {{\overset{\sim}{H}}^{*}\overset{\sim}{H}}} \end{bmatrix}} & {{Equation}\quad(28)} \end{matrix}$ which is block diagonal. In this case, the expressions for g_(opt) and b_(opt) decouple into a simple form. Therefore, the optimal FFE and FBE coefficients are represented as: $\begin{matrix} {g_{opt} = {\left( {{\sigma_{v}^{2}I} + {H_{\delta}^{*}H_{\delta}}} \right)^{- 1}h_{\delta}^{*}}} & {{Equation}\quad(29)} \\ {b_{opt} = {\overset{\_}{H}g_{opt}}} & {{Equation}\quad(30)} \end{matrix}$

The above expressions are valid for all values of the DFE delay δ. In general, the optimal value for the DFE delay δ is within the range L−1≧δ_(opt)≧N+L−2. In the special case of the choice δ=L−1, the matrices involved in the above expressions are given by: $\begin{matrix} {{{H_{\delta} = \begin{bmatrix} {h(0)} & 0 & \cdots & 0 \\ {h(1)} & {h(0)} & \cdots & 0 \\ \vdots & \vdots & ⋰ & \vdots \\ {h\left( {N - 1} \right)} & {h\left( {N - 2} \right)} & ⋰ & {h(0)} \end{bmatrix}},{h_{\delta}^{*} = \begin{bmatrix} {h^{*}\left( {N - 1} \right)} \\ {h^{*}\left( {N - 2} \right)} \\ \vdots \\ {h^{*}(0)} \end{bmatrix}}}{And}} & {{Equation}\quad(31)} \\ {\overset{\_}{H} = \begin{bmatrix} 0 & {h\left( {N - 1} \right)} & ⋰ & {h(1)} \\ 0 & 0 & ⋰ & {h(2)} \\ \vdots & \vdots & ⋰ & \vdots \\ 0 & 0 & \cdots & {h\left( {N - 1} \right)} \end{bmatrix}} & {{Equation}\quad(32)} \end{matrix}$

Note that this solution is equivalent to the solution of Al-Dhahir's equations, due to the uniqueness of w_(opt) when Equation (2) is minimized. However, the expressions obtained above for Equations (29) and (30) provide alternative methods to compute the FFE and FBE coefficients g_(opt) and b_(opt) in a simpler and more efficient way than the prior art techniques.

In calculating g_(opt), a coefficient matrix is first defined in Equation (33) as: $\begin{matrix} {P_{\delta}\overset{\Delta}{=}\left( {{\sigma_{v}^{2}I} + {H_{\delta}^{*}H_{\delta}}} \right)^{- 1}} & {{Equation}\quad(33)} \end{matrix}$ so that the optimal solution for the FFE coefficients g_(opt) is given by g _(opt) =P _(δ) h* _(δ).  Equation (34)

The expression for g_(opt) corresponds exactly to the definition of the Kalman gain vector, used to update the optimal weights in a certain regularized Recursive Least Squares (RLS) problem. More specifically, given a (n+1)×L data matrix H_(n) and the corresponding coefficient matrix P_(n), the Kalman gain g_(n)=P_(n)h*_(n) can be time-updated according to the following recursions: γ⁻¹(n)=1+h _(n) P _(n−1) h* _(n),  Equation (35) g _(n) =P _(n−1) h* _(n)γ(n),  Equation (36) P _(n) =P _(n−) −g _(n)γ⁻¹(n)g* _(n),  Equation (37) Where P⁻¹=σ_(v) ⁻²I (the term P⁻¹ is the initial condition for P_(n)) and g₀=0. The computation of the Kalman gain vector g_(n+1) in the above solution relies on the propagation of the Riccati variable P_(n). This method of computation requires O(L²) operations per iteration.

Well known fast RLS schemes avoid the propagation of P_(n) and compute the gain g_(n) in a more efficient way. In this case, the computational complexity required is only of O(L) per iteration. This implies that the overall complexity needed to calculate the FFE coefficients can be on the order of O(L²) thus yielding an efficient method for computing the FFE coefficients. Therefore, fast RLS filters are used to determine g_(opt). In such case, fast transversal computations are employed to determine the Kalman gain for the RLS solution (step 306). Here we also note that it is straightforward to extend this method to use other fast RLS algorithms, e.g., array form fast RLS algorithms.

Faster recursions may be obtained by selecting the FBE length. Such selection eliminates certain variables that remain constant and equal to zero during adaptations in the special solution for g_(opt). Fast RLS recursion in its explicit form propagates g_(n) in an efficient manner, see, e.g.: [1] Ljung, M. Morf, and D. Falconer, “Fast calculation of gain matrices for recursive estimation schemes,” Int. J. Contr. vol. 27, pp. 1-19, January 1978); [2] G. Carayannis, D. Manolakis, and N. Kalouptsidis, “A fast sequential algorithm for least squares filtering and prediction,” IEEE Trans. on Acoustic., Speech, Signal Proc., vol. ASSP-31, pp. 1394-1402, December 1983; and [3] J. Cioffi and T. Kailath, “Fast recursive-least-squares transversal filters for adaptive filtering,” IEEE Trans. on Acoust., Speech Signal Processing, vol. ASSP-32, pp. 304-337, April 1984.

Table 1 lists the fast recursions employed in one embodiment for computing the normalized Kalman gain. The additional index included in k_(L,n) and γ_(L)(n) stems from the fact that these quantities admit an order-update relation, instead of time-update. TABLE 1 Fast Transversal Computation of the Kalman gain. Initialization $\begin{matrix} {{\zeta^{f}\left( {- 2} \right)} = {{\zeta^{b}\left( {- 1} \right)} = \sigma_{v}^{2}}} \\ {w_{- 1}^{f} = {w_{0}^{b} = {k_{0} = 0}}} \\ {{\gamma_{L}(0)} = 1} \end{matrix}\quad$ For n = 0 to δ repeat operations (1) to (13): $\begin{matrix} (1) & {{\alpha_{L}\left( {n - 1} \right)} = {{h(n)} - {h_{n - 1}w_{n - 2}^{f}}}} \\ (2) & {{f\left( {n - 1} \right)} = {{\gamma_{L}\left( {n - 1} \right)}{\alpha\left( {n - 1} \right)}}} \\ (3) & {{k_{{L + 1},{n - 1}}\begin{bmatrix} 0 \\ k_{L,{n - 1}} \end{bmatrix}} + {\frac{\alpha*\left( {n - 1} \right)}{\zeta^{f}\left( {n - 2} \right)}\begin{bmatrix} 1 \\ {- w_{n - 2}^{f}} \end{bmatrix}}} \\ (4) & {{\zeta^{f}\left( {n - 1} \right)} = {{\zeta^{f}\left( {n - 2} \right)} + {\alpha*\left( {n - 1} \right){f\left( {n - 1} \right)}}}} \\ (5) & {w_{n - 1}^{f} = {w_{n - 2}^{f} + {k_{L,{n - 1}}{f\left( {n - 1} \right)}}}} \\ (6) & {{\gamma_{L + 1}(n)} = {{\gamma_{L}\left( {n - 1} \right)}\frac{\zeta^{f}\left( {n - 2} \right)}{\zeta^{f}\left( {n - 1} \right)}}} \\ (7) & {{v(n)} = \left( {{last}\quad{entry}\quad{of}\quad k_{{L + 1},{n - 1}}} \right)} \\ (8) & {k_{L,n} = {{k_{{L + 1},{n - 1}}\left( {1:L} \right)} + {{v(n)}w_{n - 1}^{b}}}} \\ (9) & {{\beta(n)} = {{\zeta^{b}\left( {n - 1} \right)}{v^{*}(n)}}} \\ (10) & {{\gamma_{L}(n)} = \frac{\gamma_{L + 1}(n)}{1 - {{\gamma_{L + 1}(n)}{\beta_{L}(n)}{v_{L}(n)}}}} \\ (11) & {{b(n)} = {{\gamma_{L}(n)}{\beta_{L}(n)}}} \\ (12) & {{\zeta^{b}(n)} = {{\zeta^{b}\left( {n - 1} \right)} + {{\beta^{*}(n)}{b(n)}}}} \\ (13) & {w_{n}^{b} = {w_{n - 1}^{b} + {k_{L,n}{b(n)}}}} \end{matrix}\quad$ Set g_(opt) = K_(L,δ)γ_(L)(δ).

The purpose of computing k_(n) in the well-known FTF algorithm is to use it in the computation of the corresponding optimal least squared solution for the FFE coefficients. Because we are interested only in k_(n), the filtering part of the FTF algorithm is not necessary, and does not appear in the algorithm listing.

The quantities {w_(n) ^(f), w_(n) ^(b)} are known as the least-squares solutions of the forward and backward prediction problems of order L, with corresponding residual errors {f(n),b(n)}. Now, because during the first L iterations, the desired signal for the backward prediction problem is equal to zero, the backward least squares solution w_(n) ^(b) will be equal to zero. This means that all quantities associated with the backward prediction problems will remain nulls for the first L iterations. Since in our case the optimal solution is achieved exactly at the L-th iteration, we can simply rule out the computation of these quantities from Table 1. These operations correspond to operations (7) and (9) through (13) of Table 1. Note that operation (10) of Table 1 is also eliminated, since β(n)=0, which implies γ_(L)(n)=γ_(L+1)(n). This means that we can replace operation (6) of Table 1 with: $\begin{matrix} {{{\gamma_{L}(n)} = {{\gamma_{L}\left( {n - 1} \right)}\frac{\zeta^{f}\left( {n - 2} \right)}{\zeta^{f}\left( {n - 1} \right)}}},} & {{Equation}\quad(38)} \end{matrix}$ Which can be further simplified since: $\begin{matrix} {{\gamma_{L}(n)} = {{\frac{\zeta^{f}\left( {- 1} \right)}{\zeta^{f}(0)}\frac{\zeta^{f}(0)}{\zeta^{f}(1)}\ldots\frac{\zeta^{f}\left( {n - 2} \right)}{\zeta^{f}\left( {n - 1} \right)}} = \frac{\sigma_{v}^{2}}{\zeta^{f}\left( {n - 1} \right)}}} & {{Equation}\quad(39)} \end{matrix}$ Moreover, operation (8) of Table 1 becomes simply k _(L,n) =k _(L+1,n−1)(1:L).  Equation (40) where (1:L) denotes the first L entries of k_(L+1,n−1)

Table 2 illustrates a simplified fast recursion for computing the optimal FFE coefficients g_(opt). TABLE 2 Fast Transversal Computation of the FFE coefficients. Initialization $\begin{matrix} {{\zeta^{f}\left( {- 2} \right)} = \sigma_{v}^{2}} \\ {w_{- 1}^{f} = {k_{L,0} = 0}} \\ {{\gamma(0)} = 1} \end{matrix}\quad$ For n = 0 to δ repeat operations (1) through (7). ${\begin{matrix} (1) & {{\alpha_{L}\left( {n - 1} \right)} = {{h(n)} - {h_{n - 1}w_{n - 2}^{f}}}} \\ (2) & {{f\left( {n - 1} \right)} = {{\gamma\left( {n - 1} \right)}{\alpha\left( {n - 1} \right)}}} \\ (3) & {{k_{{L + 1},{n - 1}}\begin{bmatrix} 0 \\ k_{L,{n - 1}} \end{bmatrix}} + {\frac{f*\left( {n - 1} \right)}{\sigma_{v}^{2}}\begin{bmatrix} 1 \\ {- w_{n - 2}^{f}} \end{bmatrix}}} \\ (4) & {{\zeta^{f}\left( {n - 1} \right)} = {{\zeta^{f}\left( {n - 2} \right)} + {\alpha*\left( {n - 1} \right){f\left( {n - 1} \right)}}}} \\ (5) & {w_{n - 1}^{f} = {w_{n - 2}^{f} + {k_{L,{n - 1}}{f\left( {n - 1} \right)}}}} \\ (6) & {{\gamma(n)} = \frac{\sigma_{v}^{2}}{\zeta^{f}\left( {n - 1} \right)}} \\ (7) & {k_{L,n} = {k_{{L + 1},{n - 1}}\left( {1:L} \right)}} \end{matrix}\quad}\quad$ Set g_(opt) = k_(L,δ)γ(δ)

With the Kalman gain determined, the FFE coefficients are then determined (step 308). In the recursions of Table 2, the FFE coefficients are determined by setting g_(opt)=k_(L,δ)γ(δ) when the number of iterations, n, is equal to the DFE delay.

Unlike the conventional weighted FTF algorithm, the above recursions do not face finite precision difficulties for the following reasons. First, by ruling out the equations associated with the backward prediction problem, we are automatically eliminating many of the recursive loops that are responsible for the finite precision difficulties of the full FTF algorithm. Second, these simplified fast recursions have a forgetting factor λ=1, which yields finite precision stability. Third, the simplified algorithm deals with a finite set of data (δ+1 iterations). This algorithm is then reset, which avoids the accumulation of finite precision errors.

FIG. 4 is a logic diagram illustrating operations according to the present invention employed to determine Feed Back Equalizer (FBE) coefficients for the DFE. The FBE coefficients b_(opt) are determined according to the matrix-vector product of Equation (30). The computation of the feedback filter coefficients simply amounts to convolution of the channel impulse response with g_(opt). The convolution operation that defines the optimal FBE coefficients in Equation (30) can be computed directly with LM/2 multiplications. Alternatively, the operations may also be efficiently performed using well-known fast FFT convolution techniques.

To illustrate such operations, Equation (32) is first rewritten in Equation (41) as: $\begin{matrix} {{b_{opt} = {{\left\lbrack {I_{M}\quad 0} \right\rbrack\begin{bmatrix} \overset{\_}{H} & H_{3} \\ H_{4} & H_{5} \end{bmatrix}}\begin{bmatrix} g_{opt} \\ 0 \end{bmatrix}}},} & {{Equation}\quad(41)} \end{matrix}$ The above equality holds true regardless of the values of H₃, H₄ or H₅. Now, if these values are chosen such that the matrix C, defined by: $\begin{matrix} {C = {\begin{bmatrix} \overset{\_}{H} & H_{3} \\ H_{4} & H_{5} \end{bmatrix}.}} & {{Equation}\quad(42)} \end{matrix}$ Is a square (Q×Q) circulant matrix, where Q is the smallest power-of-two integer larger than or equal M+L. In this case, the matrix C is rewritten in Equation (43) as: C=F*ΛF,  Equation (43) Where F is a (Q×Q) FFT matrix and A is a diagonal matrix that contains the elements of the FFT of the first row of C. The solution for b_(opt) becomes: $\begin{matrix} {{b_{opt} = {\left\lbrack {I_{M}\quad 0} \right\rbrack F^{*}\Lambda\quad{F\begin{bmatrix} g_{opt} \\ 0 \end{bmatrix}}}},} & {{Equation}\quad(44)} \end{matrix}$ The complexity of this method is the complexity of obtaining the FFT of two vectors of Q elements of each, the inverse FFT of another Q element vector, and Q complex multiples. Thus the overall complexity is Q+3Qlog₂(Q).  Equation (45) For the case of a power-of-two channel estimate N, the complexity is 2M+6Mlog₂(2M).  Equation (46)

Thus, referring again to FIG. 4, in determining the FBE coefficients, the convolutional matrix {overscore (H)} is first determined (step 402). As was previously described, the matrix {overscore (H)} may be determined as part of the channel estimation. Then, the convolutional matrix {overscore (H)} is extended to form the bigger circulant matrix C (step 404). The bigger circulant matrix C is then converted to the Frequency domain (step 406) as are the FFE coefficients (step 408). With both the bigger circulant matrix C and the FFE coefficients in the frequency domain, they are convolved in the frequency domain by simple matrix multiplication (step 410) to produce the FBE coefficients b_(opt). Finally, the resultant FBE coefficients b_(opt) are then converted to the time domain using inverse FFT operations to produce FBE coefficients b_(opt) in the time domain (step 412). The FBE coefficients b_(opt) are then applied with the FFE coefficients g_(opt) to the DFE (as previously described with reference to FIG. 2.

FIG. 5 is a block diagram illustrating a discrete time fractionally-spaced DFE that operates according to the present invention. FIG. 6 is a block diagram illustrating a multi-channel equivalent of the discrete time fractionally-spaced DFE of FIG. 5. The approach used for the symbol-spaced model can be easily extended to fractionally spaced models. In this section, we shall derive a fast algorithm for a T/2-spaced equalizer. The fast solution for the general case of faster oversampling factors, say T/3, T/4, . . . , etc. will then follow simply by inspection of the arguments in this section.

FIGS. 5 and 6 illustrate two equivalent representations for a discrete time model of a T/2-spaced equalizer. FIG. 5 illustrates a DFE 500 in terms of a down sampler and up sampler device, while FIG. 6 illustrates a DFE 600 is a corresponding multichannel representation. Thus, as contrasted to FIG. 1A, the DFE 500 of FIG. 5 includes a down sampler 502 and an up sampler 504 that alter the sampling frequency. Further, the DFE 600 of FIG. 6 includes a first channel function 602 having channel estimate h₀ and corresponding noise function v₀(n) and FFE 606 coefficients g₀. Likewise, the DFE 600 of FIG. 6 also includes a second channel function 604 having channel estimate h₁ and corresponding noise function v₁(n) and FFE 608 coefficients {g₀, g₁}.

The equivalence between the structures of FIG. 5 and FIG. 6 can be easily verified by writing each of the quantities {h.g} and v(n) in terms of their polyphase components, and interchanging their position with the down sampler and the up sampler (see, e.g., P. P. Vaidyanathan, “Multirate Systems and Filter Banks,” Prentice Hall, N.J., 1993 and J. R. Treichler, I. Fijalkow, C. R. Johnson, Jr., “Fractionally spaced equalizers,” IEEE Signal Processing Magazine, vol. 13, no. 3, May 1996 for details). The quantities {h₀, h₁} and {g₀, g₁} are the so-called polyphase components of the channel and FFEs, and are denoted by N and L size vectors {h₀, h₁} and {g₀, g₁} (see FIG. 6). The noise sequences {v₀(n), v₁(n)} are also the even and odd samples of v(n), with powers 2σ_(v) ².

A model for the multichannel representation, just like the one for the symbol spaced case in equation (4) may be rewritten by collecting {g₀, g₁} into a single vector g′, as: g′=[g ₁ g ₀]  Equation (47) With the output of the multichannel system given by: └y_(0,n)y_(1,n)┘g′  Equation (48)

Thus, the following model of Equation (49) works for the input to g′: └y _(0,n) y _(1,n) ┘=x _(n) [H ₀ H ₁ ]+v _(0,n) v _(1,n)┘  Equation (49) Where {H₀, H₁} are the convolution matrices associated with the subchannels {h₀, h₁}. It is more convenient, however, to express the inner product in Equation (45) as a function of the original FFE coefficients vector g, by reordering the entries of g′. In this case, Equation (46) is replaced by: $\begin{matrix} {{y_{n}^{\prime} = {{x_{n}H^{\prime}} + v_{n}^{\prime}}}{Where}} & {{Equation}\quad(50)} \\ {H^{\prime} = \begin{bmatrix} {h(1)} & {h(0)} & \quad & \quad & \quad & \quad \\ {h(3)} & {h(2)} & {h(1)} & {h(2)} & \quad & \quad \\ \vdots & \vdots & {h(3)} & {h(2)} & \quad & \quad \\ {h\left( {{2N} - 1} \right)} & {h\left( {{2N} - 2} \right)} & \vdots & \vdots & ⋰ & {h(0)} \\ \quad & \quad & {h\left( {{2N} - 1} \right)} & {h\left( {{2N} - 2} \right)} & \quad & {h(2)} \\ \quad & \quad & \quad & \quad & ⋰ & \vdots \\ \quad & \quad & \quad & \quad & {h\left( {{2N} - 1} \right)} & {h\left( {{2N} - 2} \right)} \end{bmatrix}} & {{Equation}\quad(51)} \end{matrix}$ Given this convolution matrix and the noise variance σ_(v′) ², the solution for the fractionally space problem is simply given by Equations (29) and (30), with {H_(δ), {overscore (H)}, σ_(v) ²} replaced by {H′_(δ), {overscore (H)}, σ_(v′) ²} (similarly to the symbol-spaced case, here we assume M>N−1).

For the symbol-spaced DFE, the shift structure of H_(δ) implies that k_(L,n)=k_(L+1,n−1)(1:L). That is, the normalized gain k_(L,n) can be computed fast, by performing the order update of k_(L,n−1) to k_(L+1,n−1), and then retaining the first L entries of k_(L+1,n−1) as k_(L,n). The procedure to derive a fast recursion in the T/2-spaced case follows the same principle. The only difference here is that the data matrix H′_(δ) has now a double shift structure, in the sense that each row is formed by shifting two samples of the channel at a time. Thus, two successive order updates from k_(L,n−1) to k_(L+2,n−1) be performed and then the first L entries of k_(L+2,n−1) are retained: k_(L,n−1)→k_(L+1kn−1)→k_(L+2,n−1)  Equation (52) So that k _(L,n) =k _(L+2,n−1)(1:L)  Equation (53)

In other words, the resulting algorithm is given by two consecutive forward prediction problems similar to operations (1) through (6) of Table 2 of orders L and L+1, respectively. Table 3 lists the resulting algorithm for the T/2-spaced case. TABLE 3 Fast Transversal Computation of FFE coefficients for the T/2-spaced equalizer. Initialization ${\begin{matrix} {{\zeta_{L}^{f}\left( {- 2} \right)} = {{\zeta_{L + 1}^{f}\left( {- 2} \right)} = {2\sigma_{v}^{2}}}} \\ {w_{L,{- 1}}^{f} = {w_{{L + 1},{- 1}}^{f} = {k_{L,0} = {k_{{L + 1},0} = 0}}}} \\ {{\gamma_{L}(0)} = {{\gamma_{L + 1}(0)} = 1}} \end{matrix}\quad}\quad$ For n = 0 to δ repeat operations (I) to (II): (I) For q = L to L + 1 repeat operations (1) to (6): ${{\begin{matrix} (1) & {{\alpha_{q}\left( {n - 1} \right)} = {{h\left( {{2n} + q - L + 1} \right)} - {h_{n - 1}w_{q,{n - 2}}^{f}}}} \\ (2) & {{f_{q}\left( {n - 1} \right)} = {{\gamma_{q}\left( {n - 1} \right)}{\alpha_{q}\left( {n - 1} \right)}}} \\ (3) & {{k_{{q + 1},{n - 1}}\begin{bmatrix} 0 \\ k_{q,{n - 1}} \end{bmatrix}} + {\frac{\alpha_{q}^{*}\left( {n - 1} \right)}{\zeta_{q}^{f}\left( {n - 2} \right)}\begin{bmatrix} 1 \\ {- w_{q,{n - 2}}^{f}} \end{bmatrix}}} \\ (4) & {{\zeta_{q}^{f}\left( {n - 1} \right)} = {{\zeta_{q}^{f}\left( {n - 2} \right)} + {{\alpha_{q}^{*}\left( {n - 1} \right)}{f_{q}\left( {n - 1} \right)}}}} \\ (5) & {w_{q,{n - 1}}^{f} = {w_{q,{n - 2}}^{f} + {k_{q,{n - 1}}{f_{q}\left( {n - 1} \right)}}}} \\ (6) & {{\gamma_{q + 1}(n)} = {{\gamma_{q}(n)}\frac{\zeta_{q}^{f}\left( {n - 2} \right)}{\zeta_{q}^{f}\left( {n - 1} \right)}}} \end{matrix}\quad}\quad}\quad$ (II) k_(L,n) = k_(L+1,n−1)(1:L) Set g_(opt) = k_(L,δ)γ_(L+2)(δ)

In the general case of a T/S spaced equalizer, the fast DFE tap computation is a straightforward extension of the above algorithm, where q is iterated from L to (L+S−1). However, in the fractionally spaced equalizer, the RLS problem is formulated as a multi-channel problem. In such case, a multi-channel Kalman gain is calculated for the multi-channel RLS problem and the FFE taps are determined therefrom. Note that in the expressions of Table 3, successive order updates are performed.

Now, the optimal FBE taps could now be computed as $\begin{matrix} {b_{opt} = {\left\lbrack {I_{M}\quad 0} \right\rbrack F^{*}{{\Lambda_{S}\left( {F \otimes I_{S}} \right)}\begin{bmatrix} g_{opt} \\ 0 \end{bmatrix}}}} & {{Equation}\quad(54)} \end{matrix}$ Where Λ_(S) is a block diagonal matrix, which satisfies C _(S) =F _(S)*Λ_(S) F _(S)  Equation (55) Where F_(S)=F{circle over (×)}I_(S) and C_(S) is a block circulant matrix, which is formed by extending the matrix H in the same manner as in Equation (42). As was the case with the symbol spaced operations described above, the convolution may be performed in a transformed domain, e.g., Frequency Transformation domain, Discrete Cosine Transformation domain and the Discrete Hartley Transformation domain, among others. In such case a Croniker product may be employed in conjunction with such domain transformation in performing multi-channel convolution in the selected transformed domain.

FIG. 7 is a block diagram illustrating a transceiver constructed according to the present invention. The components of the transceiver 700 are resident in a communications device and are illustrated only generally to show how the operations of the present invention would be accomplished in such a transceiver. The transceiver 700 includes a receiver section 702 and a transmitter section 704 and further includes either a wireless transceiver 706 or a wired transceiver, depending upon the system in which the transceiver 700 is implemented. In the case of a cellular device, RF device, satellite system device, or another wireless implementation, the transceiver 700 includes a wireless transceiver. However, in the case of a cable modem, a LAN device, a home networking device, or another device that couples to a physical media, the transceiver 700 includes a wired transceiver 708. Further, if the present invention is implemented in a Serializer/Deserializer (SERDES) or similar application, the receiver section 702 and transmitter section 704 may couple to a media without a wired transceiver 708.

Further discussion of the transmitter section 704 and receiver section 702 are in the context of baseband processing. In such case, the receiver section 702 receives a baseband signal from the wireless transceiver 706 (or wired transceiver 708) that is baseband modulated and operates upon the baseband signal to extract data. These operations include determining DFE coefficients according to the present invention and operating upon the baseband signal using the determined DFE coefficients.

The transmitter section 704 receives digital data to be transmitted from a host, codes the digital data into a baseband signal, and passes the baseband signal to the RF transceiver 706. The RF transceiver 706 couples the baseband signal to an RF carrier to create an RF signal and transmits the RF signal to a receiving device across a wireless link.

The receiver section 702 receives a baseband signal that carries coded data from the RF transceiver 706. A Programmable Gain Amplifier (PGA) 712 adjusts the gain of the baseband signal and then provides the gain-adjusted baseband signal to an Analog-to-Digital Converter (ADC) 714 for sampling. The ADC 208 samples the gain adjusted baseband signal at a particular sampling frequency, f_(s) (that is the symbol clock frequency), to produce samples thereof.

A processor 710 couples to the output of the ADC 714 and analyzes a preamble sequence contained in each received physical layer frame. Based upon the preamble sequence, the processor 710 determines a gain to be applied to portions of the baseband signal corresponding to the data carrying portions of the frame and provides this gain to the PGA 712. Further, the processor 710 may also interact with the optional timing compensation section 716 to compensate for symbol timing and RF carrier mismatches.

The processor 710, based upon the preamble sequence (and based upon actual extracted data in some operations), also determines FFE 104 and FBE 108 coefficients. The manner in which these coefficients are determined was previously described in detail herein. Further, and as was also previously described, the processor 710 may estimate a channel and calculate DFE coefficients based upon unknown but assumed data content. After the processor 710 determines these coefficients, they are applied to the FFE 104 and FBE 108 for subsequent use in extracting data from the baseband signal.

The structure described in FIG. 7 may be embodied using various types of circuits formed using various manufacturing processes. For example, in one particular embodiment, the RF transceiver 706 (or wired transceiver 708) is embodied in a first integrated circuit that is coupled to a second integrated circuit that includes the transmitter section 704 and the receiver section 702, among other circuits. In another embodiment, the RF transceiver 706, the transmitter section 704 and the receiver section 702 are all formed on a single monolithic integrated circuit. These integrated circuits may be constructed in CMOS or another semiconductor technology, e.g., PMOS, NMOS, Bipolar, etc.

Further, the receiver section 702 of FIG. 7 may be constructed using various circuit elements/combinations. In one embodiment, all structures past the ADC 714 in the receiver section 702 are embodied using a Digital Signal Processor (DSP) or similar processing device. In another embodiment, dedicated signal path circuitry embodies each of the structural components of the receiver section 702, including the processor 710. While a DSP implementation would provide more flexibility, dedicated signal path circuitry would typically provide higher performance at a lower cost and with lower power consumption.

FIG. 8 is a logic diagram illustrating operations according to the present invention employed to determine DFE coefficients with constrained FBE energy. With these operations, a DFE solution is determined that facilitates a trade off between noise enhancement and error propagation. Operation commences with formulating the channel estimate as a convolution matrix H (step 802). Operation continues with determining a FBE energy constraint based upon the channel estimate (step 804). Operation continues with relating the convolution matrix H to the DFE coefficients in a matrix format equation, the matrix format equation based upon the structure of the DFE, the convolution matrix, an expected output of the DFE, and the FBE energy constraint (step 806). The operation continues with formulating a recursive least squares solution to the matrix format equation (step 808). Operation further includes computing the recursive least squares solution to the matrix format equation to yield the DFE coefficients. (step 810). Operation completes with applying the DFE coefficients to the DFE (step 812). The operations of FIG. 8 may replace steps 204-208 of FIG. 2 with the other operations of FIG. 2 being additionally performed. The transceiver of FIG. 7 may be employed to implement the operations of FIG. 7. In such case, the processor 710 would have primary or all responsibility in determining the DFE coefficients.

The operations in determining the FBE energy constraint that is based upon the channel estimate at step 804 may include: (1) estimating a channel profile of the channel estimate; (2) estimating a Signal to Noise Ratio (SNR) of the channel estimate; (3) comparing the SNR of the channel estimate to an operational SNR to determine a noise characterization of the channel estimate; and (4) determining the FBE energy constraint based upon the noise characterization of the channel estimate and the channel profile of the channel estimate. The FBE energy constraint may be formulated as a diagonal matrix having a plurality of FBE energy constraint coefficients.

The Constrained Energy DFE (CE-DFE) solution may be given in Equation (56) as: $\begin{matrix} {\min\limits_{g,b}\left( {{E{{{x\left( {n - \delta} \right)} - {\hat{x}\left( {n - \delta} \right)}}}^{2}} + {b^{*}{Gb}}} \right)} & {{Equation}\quad(56)} \end{matrix}$ Where G is a weighting diagonal matrix (FBE energy constraint) given by: G=diag[α₁α₂ . . . α_(L)]  Equation (57) By collecting f and b into a single vector w, the minimization of equation (56) can be written as: $\begin{matrix} {{\underset{w}{\min\quad E}{{x_{n} - {\left\lbrack {y_{n} - {\overset{˘}{x}}_{n}} \right\rbrack\begin{bmatrix} g \\ b \end{bmatrix}}}}^{2}} + {{w^{*}\begin{bmatrix} 0 & 0 \\ 0 & G \end{bmatrix}}{w.}}} & {{Equation}\quad(58)} \end{matrix}$ The CE-DFE solution is thus given in Equation (59) as: $\begin{matrix} {{w_{opt} = {\left( {R_{u} + \begin{bmatrix} 0 & 0 \\ 0 & G \end{bmatrix}} \right)^{- 1}R_{{ux}{({n - \delta})}}}},} & {{Equation}\quad(59)} \end{matrix}$

Using the channel output model of Equation (4), the CE-DFE solution becomes: $\begin{matrix} {{w_{opt} = {\begin{bmatrix} {{\sigma_{v}^{2}I} + {H^{*}H}} & {- {\overset{\_}{H}}^{*}} \\ {- \overset{\_}{H}} & D \end{bmatrix}^{- 1}\begin{bmatrix} h^{*} \\ 0 \end{bmatrix}}},} & {{Equation}\quad(60)} \end{matrix}$ where the diagonal matrix D is defined by: D=I+G=diag[(1+α₁) (1+α₂) . . . (1+α_(L))]  Equation (61) Applying the inverse formula of block matrices yields: $\begin{matrix} {{w_{opt} = {\left( {\begin{bmatrix} 0 & 0 \\ 0 & D^{- 1} \end{bmatrix} + {\begin{bmatrix} I \\ {D^{- 1}\overset{\_}{H}} \end{bmatrix}{\left( {{\sigma_{v}^{2}I} + {H^{*}H} - {{\overset{\_}{H}}^{*}D^{- 1}\overset{\_}{H}}} \right)^{- 1}\left\lbrack {I\quad D^{- 1}\quad\overset{\_}{H}} \right\rbrack}}} \right)\begin{bmatrix} h^{*} \\ 0 \end{bmatrix}}},} & {{Equation}\quad(62)} \\ {{= {\begin{bmatrix} I \\ {D^{- 1}\overset{\_}{H}} \end{bmatrix}\left( {{\sigma_{v}^{2}I} + {H^{*}H} - {{\overset{\_}{H}}^{*}D^{- 1}\overset{\_}{H}}} \right)^{- 1}{h^{*}.}}}\quad} & {{Equation}\quad(63)} \end{matrix}$

Thus, in one embodiment, the matrix format equation (determined at step 806) may be written as Equations (64) and (65) as: g _(opt)=(σ_(v) ² I+H*H−{overscore (H)}*D ⁻¹{overscore (H)})⁻¹ h*  Equation (64) b _(opt) =D ⁻¹ {overscore (H)}g _(opt)  Equation (65)

Solving Equations (64) and (65) to yield the DFE coefficients as performed at steps 808 and 810 may be performed in a manner similar to the operations described with reference to FIGS. 3 and 4. In such case, computing the recursive least squares solution to the matrix format equation to yield the DFE coefficients may include computing a solution to the least squares problem that yields Feed Forward Equalizer (FFE) coefficients of the DFE coefficients. This technique would also include convolving the FFE coefficients with a convolution matrix that is based upon the channel estimate to yield the FBE coefficients of the DFE coefficients.

Using techniques similar to those describe with reference to FIGS. 3 and 4, formulating the recursive least squares solution to the matrix format equation may include using a Fast Transversal Filter (FTF) algorithm or formulating as a Kalman gain solution using the FTF algorithm. In such case, the Kalman gain solution may be determined using an Array Form Algorithm.

According to one embodiment of the present invention, the plurality of FBE energy constraint coefficients is equal valued. Such equal tap weighting is given by Equation (66): α₁=α₂= . . . =α_(L)=α,  Equation (66) With this equal valued embodiment, the CE-DFE solution reduces to: $\begin{matrix} {g_{opt} = {\left( {{\sigma_{v}^{2}I} + {H^{*}H} - {\frac{1}{1 + \alpha}{\overset{\_}{H}}^{*}\overset{\_}{H}}} \right)^{- 1}h^{*}}} & {{Equation}\quad(67)} \\ {b_{opt} = {\frac{1}{1 + \alpha}\overset{\_}{H}g_{opt}}} & {{Equation}\quad(68)} \end{matrix}$

The CE-DFE solution is a trade off between the conventional DFE solution given in equations (29) and (30) and the conventional LE solution given in equation (11). In other words, the CE-DFE solution is a trade off between noise enhancement and error propagation. Thus, two special cases of solution to Equations (67) and (68) exist. The first case is for the zero FBE energy constraint. The second case is for the infinite FBE energy constraint.

For the zero FBE energy constraint: α_(i)=0, for all i  Equation (69) With this assumption, the matrix D reduces to: D=I,  Equation (70) and the CE-DFE solution directly reduces to the DFE solution given in Equations (29) and (30).

For the infinite FBE energy constraint: α_(i)→∞, for all i  Equation (71) With this assumption, the matrix D reduces to: $\begin{matrix} {{\begin{matrix} \lim \\ \left. \alpha_{i}\rightarrow\infty \right. \end{matrix}D} = 0} & {{Equation}\quad(72)} \end{matrix}$ In this case, the CE-DFE solution approaches the LE solution given in Equation (11).

FIG. 9 is a logic diagram illustrating operations according to another embodiment of the present invention to determine FFE coefficients of a DFE having constrained FBE energy. The operations 204 of FIG. 9 are employed with the operations of FIG. 2 to directly compute DFE coefficients from a channel estimate. Operation commences with determining a DFE configuration that includes a FFE having FFE coefficients and a FBE having FBE coefficients (Step 902). The configuration of the DFE may take the form of any of the DFEs illustrated FIGS. 1A, 5, 6, or 7. Alternately, the DFE may service a Multiple Input Multiple Output (MIMO) DFE as is described more fully in co-pending parent application Ser. No. 10/154,947, filed May 24, 2002. Generally, each of the FFE and the FBE has a filter configuration and corresponding filter coefficients.

After the DFE configuration is determined, operation includes determining a FBE coefficients energy constraint (step 904). With this energy constraint, a total energy of the FBE coefficients may be limited, the energy of each FBE coefficient may be limited, or another FBE coefficient energy constraint may be enacted. With this limitation enacted, operation proceeds with formulating a recursive least squares problem based upon the DFE configuration, the channel estimate, and the FBE energy constraint (Step 906). The, operation includes solving the recursive least squares problem to yield the FFE coefficients (Step 908). Operation then proceeds to step 206 of FIG. 2 where the FBE coefficients are determined by convolving the FFE coefficients with a convolution matrix that is based upon the channel estimate.

In convolving the FFE coefficients with the convolution matrix that is based upon the channel estimate to yield the FBE coefficients of the DFE coefficients, operation may include extending a convolution matrix that is based upon the channel estimate to a bigger circulant matrix. Then, operation may include performing the convolution in a transformed domain. The transformed domain may be selected from the group consisting of the frequency domain, the Discrete Cosine Transform domain, and the Discrete Hadamard Transform domain.

In convolving the FFE coefficients with the convolution matrix that is based upon the channel estimate to yield the FBE coefficients of the DFE coefficients, operation may include extending a convolution matrix created based upon the channel estimate to a bigger circulant matrix. Such operation may also include computing the convolution in the frequency domain. Computing the convolution in the frequency domain may include transforming the convolution matrix and the FFE coefficients from the time domain to the frequency domain using a Fast Fourier Transform, computing the convolution in the frequency domain to produce the FBE coefficients, and transforming the FBE coefficients from the frequency domain to the time domain.

FIG. 10 is a logic diagram illustrating a particular technique according to the present invention and of FIG. 9 for using a fast transversal computation to determine the FFE coefficients. According to the embodiment of FIG. 10, at step 908 of FIG. 9, a solution to the recursive least squares problem is interpreted as a Kalman gain vector. Then, a Kalman gain vector solution to the recursive least squares problem is determined using a Fast Transversal Filter (FTF) algorithm. With these operations, a length of the FBE may be chosen to force the FTF algorithm to use a lower triangular matrix. Further, the Kalman gain solution may be determined using an Array Form Algorithm.

Operation 1000 of FIG. 10 commences with establishing a first set of equations for recursion (Step 1004). Operation continues with establishing an initial condition for the Kalman gain vector (step 1004). Then, a first number of Kalman gain recursions on the Kalman gain vector are performed using the first set of equations (Steps 1006 and 1008). Operation continues with altering the first set of equations for recursion to produce a second set of equations for recursion (Step 1010). Finally, operation continues with performing a second number of Kalman gain recursions on the Kalman gain vector using the second set of equations (Step 1012 and 1014). With the operation 1000 of FIG. 10, the first number of Kalman gain recursions may be based upon a length of the FFE. Further, the second number of Kalman gain recursions may be based upon the first number of recursions and a length of the channel estimate.

The following description provides a mathematical description of the manner in which the operations of FIGS. 9 and 10 are determined. Such description results in Tables 4A and 4B, which describe particular equations employed to implement the operations of FIGS. 9 and 10.

The constrained energy DFE cost function is a regularized formulation of the conventional DFE problem. That is, by collecting the tap coefficients of both T(z) and B(z) of FIG. 1A into vectors, {t,b}, optimal DFE coefficients minimizes: ζ=E|x(n−δ)−{circumflex over (x)}(n−δ)|² +b*Ab  Equation (73) where {circumflex over (x)}(n−δ) is the delayed input signal estimate prior to the decision, and A=diag {l₀, l₁, . . . l_(M−1)}, represents the FBE energy constraint. For a unit power i.i.d. input sequence, and noise autocorrelation matrix R_(v), the minimization of Equation (73) (assuming correct decisions) leads to the following solution: t _(opt)=(R _(v) +H* _(N) WH _(N))⁻¹ h* _(δ)  Equation (74) b _(opt)=(I+A)⁻¹ {overscore (H)}t _(opt)  Equation (75) where for δ=L−1, which is optimal for various practical channel and noise scenarios with fairly long feed forward filters, a channel estimate (N+L−1)×L matrix is: $\begin{matrix} {H = \begin{bmatrix} {h(0)} & 0 & \cdots & 0 \\ {h(1)} & {h(0)} & \cdots & 0 \\ \vdots & \vdots & ⋰ & \vdots \\ {h\left( {N - 1} \right)} & {h\left( {N - 2} \right)} & ⋰ & {h(0)} \\ 0 & {h\left( {N - 1} \right)} & ⋰ & {h(1)} \\ \vdots & \vdots & ⋰ & \vdots \\ 0 & 0 & \cdots & {h\left( {N - 1} \right)} \end{bmatrix}} & {{Equation}\quad(76)} \\ {{and}\quad{it}\quad{submatrices}\text{:}} & \quad \\ {{\overset{\_}{H} = \begin{bmatrix} 0 & {h\left( {N - 1} \right)} & ⋰ & {h(1)} \\ 0 & 0 & ⋰ & {h(2)} \\ \vdots & \vdots & ⋰ & \vdots \\ 0 & 0 & \cdots & {h\left( {N - 1} \right)} \end{bmatrix}},} & {{Equation}\quad(77)} \\ {h_{\delta}^{*} = \begin{bmatrix} {h^{*}\left( {N - 1} \right)} \\ {h^{*}\left( {N - 2} \right)} \\ \vdots \\ {h^{*}(0)} \end{bmatrix}} & \quad \end{matrix}$

Defining a solution to the RLS problem as a Kalman gain vector solution to yield the FFE coefficients results in: $\begin{matrix} {P_{N + L - 1}\overset{\Delta}{=}\left( {R_{v} + {H_{N}^{*}W\quad H_{N}}} \right)^{- 1}} & {{Equation}\quad(78)} \end{matrix}$ where W^(Δ)=diag {μ , μ₁, . . . , μN} is a general weighting matrix, with μ_(i)=(1−1/l_(i)). The optimal solution for the FFE coefficients is then given by: $\begin{matrix} {t_{opt}\overset{\Delta}{=}{t_{N + L - 1} = {P_{N + L - 1}h_{\delta}^{*}}}} & {{Equation}\quad(79)} \end{matrix}$

This quantity is closely related to the definition of the Kalman gain vector used to update the optimal solution in a certain regularized weighted RLS problem. More specifically, given an (i+1)×L data matrix H_(i) and its corresponding coefficient matrix P_(L,i), the (normalized) Kalman gain vector defined as k_(L,i−1)H*_(L,i) can be time-updated according to the following recursions: γ_(L) ⁻¹(i)=μ_(i) ⁻¹ +h _(L,i) P _(L,i−1) h* _(L,i)  Equation (80) k _(L,i) =P _(L,i−1) h* _(L,i)  Equation (81) P _(L,i) =P _(L,i−l) −k _(L,iγL)(i) k* _(L,i)  Equation (82) with the initial condition P_(L,−1)=R_(v) ⁻¹. Then, at the i-th iteration: t_(L,i)=P_(L,i)h*_(δ)  Equation (83) moreover, by associating P_(L,i) and k_(L,i), with a forward estimation problem, its corresponding optimal solution, viz., w_(L,i) ^(f), is recursively obtained as follows: w _(L,i) ^(f) =w _(L,i−1) ^(f) +k _(L,i) f _(L)(i)  Equation (84) where f_(L)(i) is the corresponding a posteriori forward residual. The minimum cost of this problem is updated as: ξ_(L) ^(f)(i)=ξ_(L) ^(f)(i−1)+γ_(L)(i)|α_(L)(i)|²  Equation (85) where α_(L) (i) is the a priori error related to f_(L)(i) as: f _(L)(i)=γ_(L)(i)α_(L)(i)/μ_(i)  Equation (86)

Analogous relations hold similarly for the backward estimation problem, with the quantities {w_(L,i) ^(f), f_(L)(i), α_(L)(i)} replaced by {w_(L,i) ^(b),b_(L)(i),β_(L)(i)}. Now, multiplying Equation (82) from the right h*_(δ), the optimal FFE filter given by Equation (79) can be efficiently computed as: t _(L,i) =t _(L,i−1)−τ*_(L)(i)γ_(L)(i)k _(L,i)  Equation (87) with initial condition t_(L,δ)=γ_(L)(δ)k_(L,δ), and where we have defined the quantity: τ_(L)(i)

h _(L, δi *k) _(L, i) =h _(L, δ) P _(L, i−1) h _(L, i)*  Equation (88)

Therefore, the main goal in the sequel is to obtain efficient recursive relations for the variables {k_(L,i), γ_(L)(i)} and τ_(L) (i) by relying on order updates and order downdates. In reaching this result, first observe that a fast method for computing k_(L,i), and hence γ_(L)(i), is not possible for general weighted problems. To see this, let P_(L+1,i−1), be the augmented Ricatti variable (via forward prediction) at time i−1. Likewise, let {haeck over (P)}_(L+1,i) the corresponding augmented matrix (via backward prediction) at time i. Hence when W_(i−1)=W_(i), we have: P _(L+1,i−1) ={haeck over (P)} _(L+1,i)  Equation (89) so that the corresponding Kalman vector can be efficiently time updated via consecutive order update and order downdate steps: $\begin{matrix} {\underset{\underset{{(1)}\quad{order}\quad{update}}{︸}}{\left. k_{L,{i - 1}}\rightarrow k_{{L + 1},{i - 1}} \right.} = \underset{\underset{{(2)}\quad{order}\quad{downdate}}{︸}}{\left. {\overset{\Cup}{k}}_{{L + 1},i}\rightarrow k_{L,i} \right.}} & {{Equation}\quad(90)} \end{matrix}$ (note that, at time i we work with two vectors, i.e., k_(L,i−1) and k_(L,i), whereas the index i refers to the corresponding i−1 and i-th data matrix rows). Here, due to the different tap weighting α_(i) employed, we have W_(i−1≠W) _(i), so that, in general, k_(L+1,i−1)≠{haeck over (k)}_(L+1,i). Now for the constrained problem hereof, consider constant weights μ_(i)=μ, which implies that W_(N) assumes the following structure: $\begin{matrix} {W = \begin{pmatrix} I_{\delta + 1} & \quad \\ \quad & {\mu\quad I_{N + L - \delta - 2}} \end{pmatrix}} & {{Equation}\quad(91)} \end{matrix}$ This means that up to iteration i=α+1, we have, from the usual fast Kalman recursions, that k_(L+1,i−1)={haeck over (k)}_(L+1,i). Since exactly at time i=δ+1 the underlying data matrix shift structure is interrupted, the question is then how to relate {{overscore (k)}_(L+1,i−1){haeck over (k)}_(L+,i)}, and hence {γ_(L+1)(i−1),{haeck over (γ)}_(L+1)(i)}, from time i=δ+2 onwards.

Suppose that we have computed $k_{L,i}\overset{\Delta}{=}{P_{L,{i - 1}}h_{L,i}^{*}}$ at time i≧δ+1, so that now we wish to compute $k_{L,{i + 1}}\overset{\Delta}{=}{P_{L,i}h_{L,{i + 1}}^{*}}$ according to steps (1) and (2) in Equation (90). Moreover, let P_(L+1,i−1) be the order updated Ricatti variable at time i≧δ+1. In this case, we may write {haeck over (P)} _(L+1,i) ⁻¹ P _(L+1,i−1) ⁻¹+(μ−1)h* _(L+1,δ) h _(L+1,δ)  Equation (92) so that inverting this relation we arrive at $\begin{matrix} {{\overset{˘}{P}}_{{L + 1},i} = {P_{{L + 1},{i - 1}} - \frac{P_{{L + 1},{i - 1}}h_{{L + 1},\delta}^{*}P_{{L + 1},{i - 1}}}{\frac{1}{\mu - 1} + {h_{{L + 1},\delta}P_{{L + 1},{i - 1}}h_{{L + 1},\delta}^{*}}}}} & {{Equation}\quad(93)} \end{matrix}$

Thus multiplying both sides of Equation (93) by {haeck over (h)}_(L+1,i+1)=h_(L+1,i), yields: {haeck over (k)} _(L+1,i+1) k _(L+1,i) −τ _(L+1)(i)γ_(L+1) ^(h)(i)t _(L+1,i−1)  Equation (94) where we have defined the following variables: $\begin{matrix} {t_{{L + 1},{i - 1}}\overset{\Delta}{=}{P_{{L + 1},{i - 1}}h_{{L + 1},\delta}^{*}}} & {{Equation}\quad(95)} \\ {{\tau_{L + 1}(i)}\overset{\Delta}{=}{h_{{L + 1},\delta}P_{{L + 1},{i - 1}}h_{{L + 1},i}^{*}}} & {{Equation}\quad(96)} \\ {\quad{= {{h_{{L + 1},\delta}k_{{L + 1},i}} = {t_{{L + 1},{i - 1}}^{*}h_{{L + 1},i}^{*}}}}} & {{Equation}\quad(97)} \\ {{\gamma_{L + 1}^{h}(i)}\overset{\Delta}{=}\frac{1}{\frac{1}{\mu - 1} + {h_{{L + 1},\delta}P_{{L + 1},{i - 1}}h_{{L + 1},\delta}^{*}}}} & {{Equation}\quad(98)} \end{matrix}$

A quick look at Equation (94) implies that three additional vector recursions would be needed in order to obtain {haeck over (k)}_(L+1,i+1). That is, one time-update for t_(L+1,i−1) [similar to Equation (87)], its product with τ_(L+1), (i)γ_(L+) ^(h)(i), and the inner product in Equation (96). However, this can still be accomplished by using only two additional vector recursions, via an order update for t_(L,i−1). To see this, first consider the order update for the Kalman gain: $\begin{matrix} {k_{{L + 1},i} = {\begin{bmatrix} 0 \\ k_{L,i} \end{bmatrix} + {\frac{\alpha_{L}^{*}(i)}{\delta_{L}^{f}\left( {i - 1} \right)}\begin{bmatrix} 1 \\ {- w_{L,{i - 1}}^{f}} \end{bmatrix}}}} & {{Equation}\quad(99)} \end{matrix}$ Likewise, consider the order update for P_(L+1,i−1): $\begin{matrix} {P_{{L + 1},{i - 1}} = {\begin{bmatrix} 0 & 0 \\ 0 & P_{L,{i - 1}} \end{bmatrix} + {{\frac{1}{\delta_{L}^{f}\left( {i - 1} \right)}\begin{bmatrix} 1 \\ {- w_{L,{i - 1}}^{f}} \end{bmatrix}}\lbrack \cdot \rbrack}^{*}}} & {{Equation}\quad(100)} \end{matrix}$ the notation [•] signifies “repeat the previous term”). Substituting Equation (100) into Equation (95) yields: $\begin{matrix} {t_{{L + 1},{i - 1}} = {\begin{bmatrix} 0 \\ t_{L,{i - 1}} \end{bmatrix} + {\frac{\alpha_{L}^{h*}\left( {i - 1} \right)}{\delta_{L}^{f}\left( {i - 1} \right)}\begin{bmatrix} 1 \\ {- w_{L,{i - 1}}^{f}} \end{bmatrix}}}} & {{Equation}\quad(101)} \end{matrix}$ where we have defined $\begin{matrix} {{\alpha_{L}^{h}\left( {i - 1} \right)}\overset{\Delta}{=}{{h_{L + 1}\left( {\delta + 1} \right)} - {h_{L,\delta}w_{L,{i - 1}}^{f}}}} & {{Equation}\quad(102)} \end{matrix}$ For compactness of notation, we denote the quantity: $\begin{matrix} {{S_{L + 1}(i)}\overset{\Delta}{=}{{\tau_{L + 1}(i)}{\gamma_{L + 1}^{h}(i)}}} & {{Equation}\quad(103)} \end{matrix}$ so that substituting Equation (99) and Equation (101) into Equation (94), we obtain $\begin{matrix} {{\overset{˘}{k}}_{{L + 1},{i + 1}} = {\begin{bmatrix} 0 \\ {k_{L,i} - {{S_{L + 1}(i)}t_{L,{i - 1}}}} \end{bmatrix} + {\frac{{\alpha_{L}^{*}(i)} - {{s_{L + 1}(i)}{\alpha_{L}^{h*}\left( {i - 1} \right)}}}{\xi_{L}^{f}\left( {i - 1} \right)}\begin{bmatrix} 1 \\ {- w_{L,{i - 1}}^{f}} \end{bmatrix}}}} & {{Equation}\quad(104)} \end{matrix}$ Now, further definition of the following auxiliary quantities: $\begin{matrix} {k_{L,i}^{\prime}\overset{\Delta}{=}{k_{L,i} - {{\tau_{L + 1}(i)}{\gamma_{L + 1}^{h}(i)}t_{L,{i - 1}}}}} & {{Equation}\quad(105)} \\ {{\tau_{L}(i)}\overset{\Delta}{=}{{\alpha_{L}^{*}(i)} - {{\tau_{L + 1}(i)}{\gamma_{L + 1}^{h}(i)}{\alpha^{h*}\left( {i - 1} \right)}}}} & {{Equation}\quad(106)} \end{matrix}$ allows us to write Equation (104) more compactly as: $\begin{matrix} {{\overset{˘}{k}}_{{L + 1},{i + 1}} = {\begin{bmatrix} 0 \\ k_{L,i}^{\prime} \end{bmatrix} + {\frac{\tau_{L}(i)}{_{L}^{f}\left( {i - 1} \right)}\begin{bmatrix} 1 \\ {- w_{L,{i - 1}}^{f}} \end{bmatrix}}}} & {{Equation}\quad(107)} \end{matrix}$ Also, note from recursion Equations (103) and (104), that we still need to obtain fast recursions for the scalar variables {τ_(L+1)(i), γ_(L+1) ^(h) (i), α_(L) ^(h) (i)}. We do so as follows:

-   -   (i) Recursion for τ_(L+1), (i). Assuming that we have already         computed τ_(L) (i) via the inner product in Equation (88), we         can obtain τ_(L+1) (i) by substituting Equation (99) into         Equation (97) to obtain: $\begin{matrix}         {{\tau_{L + 1}(i)} = {{\tau_{L}(i)} + \frac{{\alpha_{L}^{*}(i)}{\alpha_{L}^{h}\left( {i - 1} \right)}}{\xi_{L}^{f}\left( {i - 1} \right)}}} & {{Equation}\quad(108)}         \end{matrix}$     -   (ii) Recursion for γ_(L+1) ^(h)(i). Denote         ${\gamma_{L + 1}^{- h}(i)}\overset{\Delta}{=}{\left\lbrack {\gamma_{L + 1}^{h}(i)} \right\rbrack^{- 1}.}$         Then, replacing L by L+1 into the time update of Equation (82),         and substituting the resulting recursion into Equation (98)         yields:         γ_(L+1) ^(−h)(i)=γ_(L+1)         ^(−h)(i−1)−γ_(L+1)(i−1)|τ_(L+1)(i−1)|²  Equation (109)

The initial condition of this variable (which can be set at the transition time δ+1) is obtained from its definition in Equation (98), which yields: γ_(L+1) ^(−h)(δ+1)=1−γ_(L+1)(δ)+(μ−1)⁻¹  Equation (110)

-   -   (iii) Recursion for α_(L) ^(h)(i). Consider the time update of         the forward optimal weight vector w_(L,i−1) ^(f), i.e.,         w _(L,i) ^(f) =w _(L,i−1) ^(f) +k _(L,i) f _(L)(i)  Equation         (111)         multiplying this relation from the left by h_(L,δ) and         substituting the result into Equation (102) yields:         α_(L) ^(h)(i)=α_(L) ^(h)(i−1)−τ_(L)(i)f _(L)(i), α_(L) ^(h)(δ)=f         _(L)(δ)  Equation (112)         Next, operations must be performed for the Correction for         γ_(L+1)(i). At time i=δ+1 it holds that:         {haeck over (γ)}_(L+1)(δ+1)=γ_(L+1) ⁻¹(δ)−1+1/μ  Equation (113)         It is part of the initialization of all variables described so         far, and accommodates the transition in structure (to now scaled         rows) inherent to this quantity. Now, a correction recursion for         γ_(L+1)(i), for i≧δ+2, can be obtained from Equation (94) by         multiplying it from the left by h_(L+1,i), which results in:         {haeck over (γ)}_(L+1) ⁻¹(i)=γ_(L+1) ⁻¹ [i−1]−γ_(L+1)         ^(h)(i−1)|τ_(L+1)(i−1)|²  Equation (114)

Also, combining the above relation with Equation (109) we obtain the following alternative recursion for {haeck over (γ)}_(L+1) ⁻¹(i): $\begin{matrix} {{{\overset{\Cup}{\gamma}}_{L + 1}^{- 1}(i)} = \frac{\gamma_{L + 1}^{- h}(i)}{{\gamma_{L + 1}^{- h}\left( {i - 1} \right)}{\gamma_{L + 1}\left( {i - 1} \right)}}} & {{Equation}\quad(115)} \end{matrix}$

In order for the FTF recursions to hold in the case of a more general regularization matrix R_(v), one must select certain initial quantities {p, q, ε, η} such that the following condition is satisfied: $\begin{matrix} {\begin{pmatrix} R_{v} & p \\ p^{*} & ɛ \end{pmatrix} = \begin{pmatrix} \eta & q^{*} \\ q & R_{v} \end{pmatrix}} & {{Equation}\quad(116)} \end{matrix}$ Hence, in the case of a Toeplitz covariance matrix R_(v), whose first row is defined by [c₀ c₁ . . . c_(L−1)], we obtain η=ε=c₀, and: p=[0 c _(M−2) . . . c ₁ c ₀]^(T)  Equation (117) q=[c* ₁ c* ₂ . . . c* _(L−1)0]^(T)  Equation (118) The role of the quantities above is to define the initial conditions: {ζ_(L) ^(f)(−2), ζ_(L) ^(b)(−1), w _(L,−2) ^(f) , w _(L,−1) ^(b)}.   Equation (119)

Equations that incorporated the foregoing and that may be employed in fast recursion operations for computing FFE coefficients according to the present invention are listed in Tables 4A and 4B below. TABLE 4A Fast Transversal Computation of FFE coefficients (CE FBE) INITIALIZATION ζ_(L) ^(f) (−2) = ζ_(L) ^(b) (−1) = c₀ w⁻² ^(f) = R_(v) ⁻¹q w_(L,−1) ^(b) = R_(v) ⁻¹p k_(L,−1) = 0 γ_(L) (0) = 1 For i = 0 to δ + 1, run the usual fast Kalman recursions (e.g., Table 1, Table 2, or Table 3); When i = δ + 1, set: t_(L,δ) = γ_(L) (δ) k_(L,δ) α_(L,) ^(h) (δ) = f_(L) (δ) γ_(L) ⁻¹ (δ + 1) := γ_(L) ⁻¹ (δ + 1) − 1 + 1/μ γ_(L+1) ^(−h)(δ + 1) = 1 − γ_(L+1) (δ) + (μ − 1)⁻¹

TABLE 4B FOR i ≧ δ + 2: $\begin{matrix} {{\alpha_{L}\left( {i - 1} \right)} = {{h(i)} - {h_{L,{i - 1}}w_{L,{i - 2}}^{f}}}} \\ {{f_{L}\left( {i - 1} \right)} = {{\gamma_{L}\left( {i - 1} \right)}{\alpha_{L}\left( {i - 1} \right)}}} \\ {{\tau_{L}\left( {i - 1} \right)} = {h_{L,\delta}k_{L,{i - 1}}}} \end{matrix}\quad$ $\begin{matrix} {{\tau_{L + 1}\left( {i - 1} \right)} = {{\tau_{L}\left( {i - 1} \right)} + \frac{{\alpha_{L}^{*}\left( {i - 1} \right)}{\alpha_{L}^{h}\left( {i - 2} \right)}}{\xi_{L}^{f}\left( {i - 2} \right)}}} \\ {{s_{L + 1}\left( {i - 1} \right)} = {{\tau_{L + 1}\left( {i - 1} \right)}{\gamma_{L + 1}^{h}\left( {i - 1} \right)}}} \\ {k_{L,{i - 1}}^{\prime} = {k_{L,{i - 1}} - {{s_{L + 1}\left( {i - 1} \right)}t_{L,{i - 2}}}}} \\ {{\tau_{L}\left( {i - 1} \right)} = {{\alpha_{L}^{*}\left( {i - 1} \right)} - {{s_{L + 1}\left( {i - 1} \right)}{\alpha^{h*}\left( {i - 2} \right)}}}} \end{matrix}\quad$ $\begin{matrix} {{\overset{\Cup}{k}}_{{L + 1},i} = {\begin{bmatrix} 0 \\ k_{L,{j - 1}}^{\prime} \end{bmatrix} + {\frac{\tau_{L}\left( {i - 1} \right)}{_{L}^{f}\left( {i - 2} \right)}\begin{bmatrix} 2 \\ {- w_{L,{j - 2}}^{f}} \end{bmatrix}}}} \\ {{_{L}^{f}\left( {i - 1} \right)} = {{_{L}^{f}\left( {i - 2} \right)} + {{\alpha_{L}^{*}\left( {i - 1} \right)}{f_{L}\left( {i - 1} \right)}}}} \\ {w_{L,{i - 1}}^{f} = {w_{L,{i - 2}}^{f} + {k_{L,{i - 1}}{f_{L}\left( {i - 1} \right)}}}} \\ {{\gamma_{L + 1}\left( {i - 1} \right)} = {{\gamma_{L}\left( {i - 1} \right)}\frac{_{L}^{f}\left( {i - 2} \right)}{_{L}^{f}\left( {i - 1} \right)}}} \end{matrix}\quad$ $\begin{matrix} {{\gamma_{L + 1}^{- h}(i)} = {{\gamma_{L + 1}^{- h}\left( {i - 1} \right)} - {{\gamma_{L + 1}\left( {i - 1} \right)}{{\tau_{L + 1}\left( {i - 1} \right)}}^{2}}}} \\ {{{\overset{\Cup}{\gamma}}_{L + 1}^{- 1}(i)} = {{\gamma_{L + 1}^{- 1}\left( {i - 1} \right)} - {{s_{L + 1}\left( {i - 1} \right)}{\tau_{L + 1}^{*}\left( {i - 1} \right)}}}} \\ {{\alpha_{L}^{h}\left( {i - 1} \right)} = {{\alpha_{L}^{h}\left( {i - 2} \right)} - {{\tau_{L1}\left( {i - 1} \right)}{f_{L}\left( {i - 1} \right)}}}} \\ {t_{L,{i - 1}} = {t_{L,{i - 2}} - {{\tau_{L}^{*}\left( {i - 1} \right)}{\gamma_{L}\left( {i - 1} \right)}k_{L,{i - 1}}}}} \end{matrix}\quad$ $\begin{matrix} {{v_{L}(i)} = \left( {{LAST}\quad{ENTRY}\quad{OF}\quad{\overset{\Cup}{k}}_{{L + 1},i}} \right)} \\ {k_{L,i} = {{\overset{\Cup}{k}}_{{1:L},i} + {{v_{L}(i)}w_{L,{i - 1}}^{b}}}} \\ {{\beta_{L}(i)} = {{_{L}^{b}\left( {i - 1} \right)}{v_{L}^{*}(i)}}} \\ {{\gamma_{L}(i)} = \left\lbrack {{{\overset{\Cup}{\gamma}}_{L + 1}^{- 1}(i)} - {{\beta_{L}(i)}{v_{L}(i)}}} \right\rbrack^{- 1}} \\ {{b_{L}(i)} = {{\gamma_{L}(i)}{\beta_{L}(i)}}} \\ {{\zeta_{L}^{b}(i)} = {{\zeta_{L}^{b}\left( {i - 1} \right)} + {{\beta_{L}^{*}(i)}{b_{L}(i)}}}} \\ {w_{L,i}^{b} = {w_{L,{i - 1}}^{b} + {k_{L,i}{b_{L}(i)}}}} \end{matrix}\quad$

Compared to a fast algorithm that propagates the Kalman vector in N iterations, the new algorithm requires three additional O(L) recursions. These recursions are given by Equation (87), Equation (88) and Equation (105), so that the complexity per iteration amounts to O(8L) vector computations plus 13 scalar recursions, resulting in a total of O(8NL+13N) multiplications.

The complexity of computing the FBE coefficient determination depends on the method chosen for fast convolution of the matrix {overscore (H)} with the optimal computed FFE coefficients t_(N). Thus, for an FFT-based filtering, the complexity is the one of obtaining the FFT of two vectors of K elements each [where K is the smallest power-of-two integer larger than or equal to (L+M)], the inverse FFT of another K size vector, and K complex multiples. Thus, the overall complexity for the case of a power-of-two channel estimate N, is 2L+6Llog₂(2L).

Thus, the teachings of the present invention reveal a fast procedure for computing constrained energy MMSE-DFE coefficients, for which no efficient algorithm was previously available. In contrast to the method for fast DFE computation in the unconstrained formulation, as described above, the constrained energy MMSE-DFE coefficients determination algorithm requires three additional vector recursions for propagating the Kalman vector (here in N iterations, due to the general weighting matrix), considering the more general case of colored noise. These recursions can be easily generalized to the MIMO case.

The invention disclosed herein is susceptible to various modifications and alternative forms. Specific embodiments therefore have been shown by way of example in the drawings and detailed description. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the claims. 

1. A method for directly computing Decision Feedback Equalizer (DFE) coefficients from a channel estimate, the method comprising: determining a DFE configuration that includes a Feed Forward Equalizer (FFE) having FFE coefficients and a Feed Back Equalizer (FBE) having FBE coefficients; determining a FBE coefficients energy constraint; formulating a recursive least squares problem based upon the DFE configuration, the channel estimate, and the FBE energy constraint; solving the recursive least squares problem to yield the FFE coefficients; and convolving the FFE coefficients with a convolution matrix that is based upon the channel estimate to yield FBE coefficients of the DFE coefficients.
 2. The method of claim 1, wherein: a solution to the recursive least squares problem is interpreted as a Kalman gain vector; and a Kalman gain vector solution to the recursive least squares problem is determined using a Fast Transversal Filter (FTF) algorithm.
 3. The method of claim 2, wherein solving the recursive least squares problem to yield the Feed Forward Equalizer (FFE) coefficients comprises: establishing a first set of equations for recursion; establishing an initial condition for the Kalman gain vector; performing a first number of Kalman gain recursions on the Kalman gain vector using the first set of equations; altering the first set of equations for recursion to produce a second set of equations for recursion; and performing a second number of Kalman gain recursions on the Kalman gain vector using the second set of equations.
 4. The method of claim 3, wherein the first number of Kalman gains recursions is based upon a length of the FFE.
 5. The method of claim 4, wherein the second number of Kalman gain recursions is based upon the first number of recursions and a length of the channel estimate.
 6. The method of claim 2, wherein a length of the FBE is chosen to force the FTF algorithm to use a lower triangular matrix.
 7. The method of claim 2, wherein the Kalman gain solution is determined using an Array Form Algorithm.
 8. The method of claim 1, wherein in convolving the FFE coefficients with the convolution matrix that is based upon the channel estimate to yield the FBE coefficients of the DFE coefficients, the method further comprises: extending a convolution matrix that is based upon the channel estimate to a bigger circulant matrix; and performing the convolution in a transformed domain.
 9. The method of claim 8, wherein the transformed domain is selected from the group consisting of the frequency domain, the Discrete Cosine Transform domain and the Discrete Hartley Transform domain.
 10. The method of claim 1, wherein in convolving the FFE coefficients with the convolution matrix that is based upon the channel estimate to yield the FBE coefficients of the DFE coefficients, the method further comprises: extending a convolution matrix created based upon the channel estimate to a bigger circulant matrix; and computing the convolution in the frequency domain.
 11. The method of claim 10, wherein computing the convolution in the frequency domain includes: transforming the convolution matrix and the FFE coefficients from the time domain to the frequency domain using a Fast Fourier Transform; computing the convolution in the frequency domain to produce the FBE coefficients; and transforming the FBE coefficients from the frequency domain to the time domain.
 12. The method of claim 1, wherein the DFE services a Multiple Input Multiple Output (MIMO) communication system.
 13. The method of claim 1, wherein the DFE is fractionally spaced.
 14. A method for directly computing Decision Feedback Equalizer (DFE) coefficients from a channel estimate, the DFE including a Feed Forward Equalizer (FFE) having FFE coefficients and a Feed Back Equalizer (FBE) having FBE coefficients, the method comprising: determining a FBE coefficient energy constraint; formulating a recursive least squares problem based upon the DFE configuration, the channel estimate, and the FBE energy constraint; formulating a solution to the recursive least squares problem as a Kalman gain vector; solving the recursive least squares problem to yield FFE coefficients of the DFE coefficients by: establishing an initial condition for the Kalman gain vector; performing a first number of recursions on the Kalman gain vector using a first set of recursive equations; altering the first set of recursive equations to produce a second set of recursive equations; performing a second number of recursions on the Kalman gain vector using the second set of equations; and producing the FFE coefficients based upon the Kalman gain vector; and convolving the FFE coefficients with a convolution matrix that is based upon the channel estimate to yield FBE coefficients of the DFE coefficients.
 15. The method of claim 15, wherein the Kalman gain vector solution to the recursive least squares problem is determined using a Fast Transversal Filter (FTF) algorithm.
 16. The method of claim 15, wherein: the first number of Kalman gain recursions is based upon a length of the FFE; and the second number of Kalman gain recursions is based upon the first number of recursions and a length of the channel estimate.
 17. The method of claim 15, wherein the DFE services a Multiple Input Multiple Output (MIMO) communication system.
 18. A Decision Feedback Equalizer (DFE) comprising: a Feed Forward Equalizer (FFE) having an input that receives an uncompensated signal and an output; a Feed Back Equalizer (FBE) having an input and an output; a Decision block having an input that receives a combination of the output of the FFE and the output of the FBE and an output that couples to the input of the FBE and produces data; and a processor that generates FFE coefficients and FBE coefficients, wherein the processor: determines a FBE coefficient energy constraint; formulates a recursive least squares problem based upon the DFE configuration, the channel estimate, and the FBE energy constraint; formulates a solution to the recursive least squares problem as a Kalman gain vector; solves the recursive least squares problem to yield FFE coefficients of the DFE coefficients by: establishing an initial condition for the Kalman gain vector; performing a first number of recursions on the Kalman gain vector using a first set of recursive equations; altering the first set of recursive equations to produce a second set of recursive equations; performing a second number of recursions on the Kalman gain vector using the second set of equations; and producing the FFE coefficients based upon the Kalman gain vector; and convolves the FFE coefficients with a convolution matrix that is based upon the channel estimate to yield FBE coefficients of the DFE coefficients.
 19. The Decision Feedback Equalizer of claim 18, wherein: the first number of Kalman gain recursions is based upon a length of the FFE; and the second number of Kalman gain recursions is based upon the first number of recursions and a length of the channel estimate.
 20. The Decision Feedback Equalizer of claim 18, wherein the DFE services a Multiple Input Multiple Output (MIMO) communication system. 